﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Manager.Camada.Negocio;
using Manager.Camada.BancoDados;

namespace Manager
{
    public partial class PaginaCadastroCliente : System.Web.UI.Page
    {
        ClienteDAOImpl daoCliente = new ClienteDAOImpl();
        List<ClienteVO> listaCliente = new List<ClienteVO>();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack == false)
            {
                //listaCliente = daoCliente.getListaTodosClientes();

                if (listaCliente.Count > 0)
                {
                    Session["ListaCliente"] = listaCliente;

                    gwCliente.DataSource = listaCliente;
                    gwCliente.DataBind();
                }
            }
            else
            {
                try
                {

                    string CEP = txtCep.Text.ToString();

                    DataSet ds = new DataSet();
                    ds.ReadXml(("http://cep.republicavirtual.com.br/web_cep.php?cep=" + (CEP.Replace("-", "").ToString() + "&formato=xml")));

                    //System.Threading.Thread.Sleep(6000);

                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        mountEnderecoCep(ds.Tables[0].Rows[0]);
                    }
                    else
                    {
                        
                    }
                }
                catch
                {

                }
            }
        }

        private void mountEnderecoCep(DataRow dataRow)
        {
            txtLogradouro.Text = dataRow["logradouro"].ToString();
            txtCidade.Text = dataRow["cidade"].ToString();
            txtBairro.Text = dataRow["bairro"].ToString();
            txtUf.Text = dataRow["uf"].ToString();
        }

        protected void bSalvar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                ClienteVO cliente = mountClienteVO();

                int idCliente = daoCliente.inserirCliente(cliente);

                if (idCliente > 0)
                {
                    List<ClienteVO> listaClienteSession = (List<ClienteVO>)Session["ListaCliente"];

                    listaClienteSession.Add(cliente);

                    gwCliente.DataSource = listaClienteSession;
                    gwCliente.DataBind();
                }
                else
                {
                    //M. para avisar que o cliente não foi inserido.
                }
            }
            catch (Exception ex)
            {

            }
        }

        private ClienteVO mountClienteVO()
        {
            ClienteVO cliente = new ClienteVO();
            cliente.nome = txtNome.Text;
            cliente.cep = Convert.ToInt32(txtCep.Text);
            cliente.endereco = txtLogradouro.Text;
            cliente.numero = Convert.ToInt32(txtNumero.Text);
            cliente.bairro = txtBairro.Text;
            cliente.cidade = txtCidade.Text;
            cliente.uf = txtUf.Text;
           
            return cliente;
        }

        
    }
}